#pragma once

#include <sys/epoll.h>

#include "Log.hpp"
#include "Common.hpp"

using namespace LogModule;

class Epoller
{
public:
    Epoller() : _epfd(-1)
    {
        int _epfd = epoll_create(128);
        if (_epfd < 0)
        {
            LOG(LogLevel::FATAL) << "epoll_create error!";
            exit(EPOLL_CREATE_ERR);
        }
        LOG(LogLevel::INFO) << "epoll_create success! epfd= " << _epfd;
    }

    // 添加事件
    void AddEvent()
    {
    }

    // 删除事件
    void DelEvent()
    {
    }

    // 修改事件
    void ModEvent()
    {
    }

    ~Epoller()
    {
        if (_epfd >= 0)
        {
            close(_epfd);
        }
    }

private:
    int _epfd; // epoll文件描述符
};